import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class JedisAPI {
    private static JedisPool jedisPool;

    static {
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(50);//连接池中最大活动连接数
        config.setMaxIdle(10);//连接池中最大空闲连接数
        config.setMinIdle(7);//连接池中最小空闲连接数
        config.setMaxWaitMillis(1000);//获取资源的等待时间
        config.setTestOnBorrow(true);//获取资源时是否验证资源的有效性

        jedisPool = new JedisPool(config,
                "127.0.0.1",
                6379,
                10000,
                "210810",
                0);
    }//static块结束

    public void destroy() {
        if (!(jedisPool == null || jedisPool.isClosed())) {
            jedisPool.close();
        }
    }

    public boolean set(String key, String value) {
        Jedis jedis = null;
        try {
            jedis = jedisPool.getResource();
            jedis.set(key, value);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
    }

    public String get(String key) {
        String value = null;
        Jedis jedis = null;
        try {
            jedis = jedisPool.getResource();//从池中获取jedis实例
            value = jedis.get(key);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //返还到连接池
            if (jedis != null) {
                jedis.close();
            }
            return value;
        }
    }

}
